
#ifndef _FORMTESTAJOGADAS_H_
#define _FORMTESTAJOGADAS_H_

#include <FBase.h>
#include <FUi.h>
#include "model/Mao.h"
#include "model/Analisador.h"
#include "model/Carta.h"
#include "model/Combinacao.h"

class FormTestaJogadas :
	public Osp::Ui::Controls::Form,
 	public Osp::Ui::IActionEventListener
{
public:
    FormTestaJogadas(void);
    virtual ~FormTestaJogadas(void);
    bool Initialize();
    result OnInitializing(void);
    result OnTerminating(void);
protected:
    static const int ID_BUTTON_ADD_JOGADOR = 101;
    static const int ID_BUTTON_ADD_MESA = 102;
    static const int ID_BUTTON_LIMPA_JOGADOR = 103;
    static const int ID_BUTTON_LIMPA_MESA = 104;
    static const int ID_BUTTON_GET = 105;
    Osp::Ui::Controls::Label *__pLabelCartasJogador;
    Osp::Ui::Controls::Label *__pLabelCartasMesa;
    Osp::Ui::Controls::Label *__pLabelCartasJogada;
    Osp::Ui::Controls::Label *__pLabelNomeJogada;
    Osp::Ui::Controls::Button *__pButtonAddJogador;
    Osp::Ui::Controls::Button *__pButtonAddMesa;
    Osp::Ui::Controls::Button *__pButtonLimpaJogador;
    Osp::Ui::Controls::Button *__pButtonLimpaMesa;
    Osp::Ui::Controls::Button *__pButtonGet;
    Osp::Ui::Controls::EditField *__pEdiFieldNumero;
    Osp::Ui::Controls::EditField *__pEdiFieldNaipe;
    Mao *jogador;
    Mao *mesa;
    Analisador* analisador;
public:
    void OnActionPerformed(const Osp::Ui::Control & source, int actionId);
private:
    void InitializeControls();
    void AddCartaJogador();
    void AddCartaMesa();
    void LimpaMaoJogador();
    void LimpaMaoMesa();
    void GetJogada();
    Carta *CriaCarta();
    void AtualizaLabelMaos();
    void AtualizaMaoMesa();
    void AtualizaMaoJogador();
};

#endif
